//
//  WCTreeNode.h
//  WabbitCode
//
//  Created by William Towe on 1/10/09.
//  Copyright 2009 Revolution Software. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "WCMacros.h"


extern NSString *kWCTNClassNameKey;
extern NSString *kWCTNNodeNameKey;
extern NSString *kWCTNChildNodesKey;

@interface WCTreeNode : NSTreeNode <NSCoding, NSCopying, NSMutableCopying> {
	NSString *_name;
}

@property (readwrite, copy) NSString *name;
@property (readonly) NSImage *icon;
@property (readonly) BOOL canRenameNode;
@property (readonly) BOOL isValid;
@property (readonly) NSString *nodeToolTip;
@property (readonly) BOOL canDeleteNode;
@property (readonly) BOOL canGroupNode;
@property (readonly) BOOL canUngroupNode;
@property (readonly) BOOL canGetInfo;
@property (readonly) NSArray *acceptedDropTypes;
@property (readonly) BOOL canCopyNodeOnDrop;
@property (readonly) NSImage *filePathInvalidBadge;
@property (readonly) Class commonClass;
@property (readonly) BOOL isDragable;
@property (readonly) BOOL isRootLevelGroup;

+ (id)treeNodeWithNodeName:(NSString *)name;

- (id)initWithNodeName:(NSString *)name;

@end
